/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.ipartek.formacion.gestformwww.modelo.beans;


import com.ipartek.formacion.gestformwww.controlador.Verificador;
import java.util.MissingResourceException;
import java.util.ResourceBundle;

/**
 *
 * @author Curso
 */
public class FiltroContacto {
   
    ResourceBundle bundle;
    private int canId;
    private int conId;
    private String fechaContactoDesde;
    private String fechaContactoHasta;
    private int pagsiguiente;
    private int elementospag;
    private String columnafiltrar;
    private String orden;

    public FiltroContacto() {
    }

    public FiltroContacto(ResourceBundle bundle, int canId, int conId, String fechaContactoDesde, String fechaContactoHasta, int pagsiguiente, int elementospag, String columnafiltrar, String orden) {
        this.bundle = bundle;
        this.canId = canId;
        this.conId = conId;
        this.fechaContactoDesde = fechaContactoDesde;
        this.fechaContactoHasta = fechaContactoHasta;
        this.pagsiguiente = pagsiguiente;
        this.elementospag = elementospag;
        this.columnafiltrar = columnafiltrar;
        this.orden = orden;
    }

    public FiltroContacto(ResourceBundle bundle) {
        this.bundle = bundle;
        this.pagsiguiente = 1;
        this.elementospag = Integer.parseInt(bundle.getString("numRegPagConvocatorias"));
    }

    public int getCanId() {
        return canId;
    }

    public void setCanId(int canId) {
        this.canId = canId;
    }

    public int getConId() {
        return conId;
    }

    public void setConId(int conId) {
        this.conId = conId;
    }

    public String getFechaContactoDesde() {
        return fechaContactoDesde;
    }

    public void setFechaContactoDesde(String fechaContactoDesde) {
        if (!Verificador.fechaValida(fechaContactoDesde)) {
            this.fechaContactoDesde = "";
        } else {
            if (fechaContactoDesde != null) {
                this.fechaContactoDesde = fechaContactoDesde;
            }
        }

    }




    public String getFechaContactoHasta() {
        return fechaContactoHasta;
    }

     public void setFechaContactoHasta(String fechaContactoHasta) {
        if (!Verificador.fechaValida(fechaContactoHasta)) {
            this.fechaContactoHasta = "";
        } else {
            if (fechaContactoHasta != null) {
                this.fechaContactoHasta = fechaContactoHasta;
            }
        }

    }

    public ResourceBundle getBundle() {
        return bundle;
    }

    public void setBundle(ResourceBundle bundle) {
        this.bundle = bundle;
    }

    public String getColumnaFiltrar() {
        return columnafiltrar;
    }

    

    public void setColumnaFiltrar(String columnafiltrar) {
        if (Verificador.caracteresCorrectos(columnafiltrar)) {
            if (columnafiltrar != null) {
                this.columnafiltrar = columnafiltrar;
            }
        } else {
            this.columnafiltrar = null;
        }
    }

    public int getElementospag() {
        return elementospag;
    }

    public void setElementospag(int elementospag) {
        this.elementospag = elementospag;
    }

     public void setElementospag(String elementospag) {
        if (Verificador.numeroValido(elementospag)) {
            this.elementospag = Integer.parseInt(elementospag);
        }
    }

    public String getOrden() {
        return orden;
    }

    public void setOrden(String orden) {
        this.orden = orden;
    }

    public int getPagsiguiente() {
        return pagsiguiente;
    }

    public void setPagsiguiente(int pagsiguiente) {
        this.pagsiguiente = pagsiguiente;
    }



     public String getSQL()
    {
        String sql = "";
        String filtro = "ORDER BY contacto.FechaContacto";
        String and = "";
        String where = " WHERE ";
        if (columnafiltrar != null && !columnafiltrar.trim().equals("")) {
            try{
                String columna = bundle.getString(columnafiltrar);

                if (columna != null && !columna.trim().equals("")) {
                    filtro = "ORDER BY " + columna;
                    if (orden != null && !orden.trim().equals("")) {
                        if (orden.trim().equals("ASC") || orden.trim().equals("DESC")) {
                            filtro = filtro + " " + orden;
                        }
                    }
                }
            } catch (MissingResourceException e){
            }
        }
        sql = "SELECT ContId,CanId,contacto.ConId,Fechacontacto,Observaciones,convocatoria.ConNom FROM contacto INNER JOIN convocatoria ON contacto.ConId=convocatoria.ConId";

//        }
        if (    //Si tiene algo añadimos el WHERE a la consulta sql
            (fechaContactoDesde != null && !fechaContactoDesde.trim().equals("")) ||
            ( fechaContactoHasta!= null && !fechaContactoHasta.trim().equals("")) ||
              (canId>0 )  || (conId>0)
            )
        {
            sql = sql + where;


            if (fechaContactoDesde != null && !fechaContactoDesde.trim().equals("")){ //Si tiene fecha de inicio desde
                sql = sql + "contacto.FechaContacto>='" + fechaContactoDesde + "'";
                if (
                        (fechaContactoDesde != null && !fechaContactoDesde.trim().equals("")||
              (canId>0 )  || (conId>0))
                    ) { //Si tiene mas parametros, agregar AND a la consulta sql
                    sql = sql + " AND ";
                }
            }
            if (fechaContactoHasta != null && !fechaContactoHasta.trim().equals("")){ //Si tiene fecha de inicio hasta
                sql = sql + "contacto.FechaContacto<='" + fechaContactoHasta + "'";
                if (
              (canId>0 )  || (conId>0))
                     { //Si tiene mas parametros, agregar AND a la consulta sql
                    sql = sql + " AND ";
                }
            }

            if(canId>0){
                sql = sql + "contacto.canId='" + canId + "'";
                    if(conId>0){
                        sql = sql + " AND ";}
              if(conId>0){
                  sql = sql + "contacto.conId='" + conId + "'";}
            }
            }

        sql= sql + " " + filtro;
        return sql;
    }


}


